<?php

Yii::import('application.modules.crm.models._base.BaseDireccion');

class Direccion extends BaseDireccion {

    /**
     * @return Direccion
     */
    public static function model($className = __CLASS__) {
        return parent::model($className);
    }

    public static function label($n = 1) {
        return Yii::t('app', 'Dirección|Direcciones', $n);
    }

    public function rules() {
        return array_merge(parent::rules(), array(
            array('calle_1', 'required'),
        ));
    }
    
    public function attributeLabels() {
        return array_merge(parent::attributeLabels(), array(
            'estado' => Yii::t('app', 'Provincia'),
        ));
    }

    public function getDireccionConFormato() {
        $direccion = '';
        if ($this->calle_1)
            $direccion .= $this->calle_1;
        if ($this->calle_2)
            $direccion .= ' y ' . $this->calle_2;
        if ($this->ciudad)
            $direccion .= '<br>' . $this->ciudad;
        if ($this->estado)
            $direccion .= ($this->ciudad ? ' - ' : '<br>') . $this->estado;
        if ($this->codigo_postal)
            $direccion .= (($this->ciudad || $this->estado) ? ',' : '') . $this->codigo_postal;
        if ($this->pais)
            $direccion .= '<br>' . $this->pais;

        return $direccion;
    }

    public function getDireccionGoogle() {
        $direccion = '';
        if ($this->calle_1)
            $direccion .= $this->calle_1;
        if ($this->calle_2)
            $direccion .= ' y ' . $this->calle_2;
        if ($this->codigo_postal)
            $direccion .= ', ' . $this->codigo_postal;
        if ($this->ciudad)
            $direccion .= ', ' . $this->ciudad;
        if ($this->estado)
            $direccion .= ', ' . $this->estado;
        if ($this->pais)
            $direccion .= ', ' . $this->pais;

        return $direccion;
    }

//Muestra las direcciones de dicha entidad 
    /**
     * @author Miguel Alba <malba@tradesystem.com.ec>
     * @param type $entidad_id
     * @return \CActiveDataProvider
     */
    public function searchDireccionesContacto($entidad_id) {
//Consulta en SQL 
//    select * from direccion d
//where d.entidad_tipo="CONTACTO" and d.entidad_id=3042
        $criteria = new CDbCriteria;
        $criteria->select = "*";
        $criteria->condition = "t.entidad_tipo=:entidad_tipo and t.entidad_id=:entidad_id";
        $criteria->params = array(
            ':entidad_tipo' => Crm_Constants::ENTIDAD_TIPO_CONTACTO,
            ':entidad_id' => $entidad_id,
        );
        return new CActiveDataProvider($this, array(
            'criteria' => $criteria,
            'pagination' => array(
                'pageSize' => 5,
            ),
        ));
    }

    public function search() {
        $criteria = new CDbCriteria;
        $criteria->compare('entidad_tipo', $this->entidad_tipo);
        $criteria->compare('entidad_id', $this->entidad_id);
        return new CActiveDataProvider($this, array(
            'criteria' => $criteria,
            'pagination' => array(
                'pageSize' => 5,
            ),
        ));
    }

}
